package com.gl.saasservice.sys.vo;

import com.fasterxml.jackson.annotation.JsonProperty;

import javax.persistence.Column;
import java.util.Date;

/*
*组织架构表
 */
public class DepartmentVO {
    protected Long id;
    /*
    *父级Id
     */
    @Column(name = "parent_id", nullable = true)
    private Long parentId;
    /*
    *名称
     */
    @Column(name = "name", nullable = true)
    private String name;
    /*
     *省
     */
    @Column(name = "province_id", nullable = true)
    private Long provinceId;
    /*
     *市
     */
    @Column(name = "city_id", nullable = true)
    private Long cityId;
    /*
     *区
     */
    @Column(name = "district_id", nullable = true)
    private Long districtId;
    /*
     *社区
     */
    @Column(name = "street_id", nullable = true)
    private Long streetId;

    /*
     *街道
     */
    @Column(name = "community_id", nullable = true)
    private Long communityId;
    /*
     *编码
     */
    @Column(name = "code", nullable = true)
    private String code;
    /*
     *排序
     */
    @Column(name = "sortby", nullable = true)
    private Integer sortby;


    /*
     *类型：1企业  2政府部门 3企业内部
     */
    @Column(name = "type", nullable = true)
    private Integer type;
    /*
     *级别：根据code计算
     */
    @Column(name = "level", nullable = true)
    private Integer level;
    /*
     *限制人数
     */
    @Column(name = "max_num", nullable = true)
    private Integer maxNum;
    /*
     *激活状态：0未激活  1已激活
     */
    @Column(name = "activate_status", nullable = true)
    private Integer activateStatus;
    /*
     *绿色通道状态：0禁用1启用
     */
    @Column(name = "status", nullable = true)
    private Integer status;

    /*
     *logo
     */
    @Column(name = "icon", nullable = true)
    private String icon;


    /*
    *产权单位：0否 1是
     */
    @Column(name = "owner_type", nullable = true)
    private Integer ownerType;
    /*
     *创建时间
     */
    @Column(name = "create_time", nullable = true)
    private Date createTime;
    /*
     *简介
     */
    @Column(name = "decription", nullable = true)
    private String decription;

    //企业用户手机号
    private String mobile;
    /**
     * 用户查看部门时是否已选
     */
    private Boolean check;


    private Integer billStatus;

    private Integer smartLockStatus;

    private String socialCreditNumber; //单位社会信用证号



    @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
    private DepartmentHierarchyVO departmentHierarchyVO =new DepartmentHierarchyVO();

    @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
    private UserVO userVO=new UserVO();

    @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
    private RoleVO roleVO=new RoleVO();

    @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
    private Long areaId; //区域id


    /**
     * 电子签状态 0未开通 1已开通
     */
    private Integer electronicVisaState;

    /**
     * 授权合同数量上限
     */
    private Long contractTotalNumber;

    /**
     * 合同已使用数量
     */
    private Long contractUsedNumber;

    public Integer getElectronicVisaState() {
        return electronicVisaState;
    }

    public void setElectronicVisaState(Integer electronicVisaState) {
        this.electronicVisaState = electronicVisaState;
    }

    public Long getContractTotalNumber() {
        return contractTotalNumber;
    }

    public void setContractTotalNumber(Long contractTotalNumber) {
        this.contractTotalNumber = contractTotalNumber;
    }

    public Long getContractUsedNumber() {
        return contractUsedNumber;
    }

    public void setContractUsedNumber(Long contractUsedNumber) {
        this.contractUsedNumber = contractUsedNumber;
    }

    public Integer getBillStatus() {
        return billStatus;
    }

    public void setBillStatus(Integer billStatus) {
        this.billStatus = billStatus;
    }

    public Integer getSmartLockStatus() {
        return smartLockStatus;
    }

    public void setSmartLockStatus(Integer smartLockStatus) {
        this.smartLockStatus = smartLockStatus;
    }

    public Long getAreaId() {
        return areaId;
    }

    public void setAreaId(Long areaId) {
        this.areaId = areaId;
    }

    public RoleVO getRoleVO() {
        return roleVO;
    }

    public void setRoleVO(RoleVO roleVO) {
        this.roleVO = roleVO;
    }

    public UserVO getUserVO() {
        return userVO;
    }

    public void setUserVO(UserVO userVO) {
        this.userVO = userVO;
    }

    public DepartmentHierarchyVO getDepartmentHierarchyVO() {
        return departmentHierarchyVO;
    }

    public void setDepartmentHierarchyVO(DepartmentHierarchyVO departmentHierarchyVO) {
        this.departmentHierarchyVO = departmentHierarchyVO;
    }

    public Boolean getCheck() {
        return check;
    }

    public void setCheck(Boolean check) {
        this.check = check;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Integer getActivateStatus() {
        return activateStatus;
    }

    public void setActivateStatus(Integer activateStatus) {
        this.activateStatus = activateStatus;
    }
    public Long getCommunityId() {
        return communityId;
    }

    public void setCommunityId(Long communityId) {
        this.communityId = communityId;
    }
    public Integer getOwnerType() {
        return ownerType;
    }

    public void setOwnerType(Integer ownerType) {
        this.ownerType = ownerType;
    }

    public Integer getSortby() {
        return sortby;
    }

    public void setSortby(Integer sortby) {
        this.sortby = sortby;
    }
    public Long getParentId() {
        return parentId;
    }

    public void setParentId(Long parentId) {
        this.parentId = parentId;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Long getProvinceId() {
        return provinceId;
    }

    public void setProvinceId(Long provinceId) {
        this.provinceId = provinceId;
    }

    public Long getCityId() {
        return cityId;
    }

    public void setCityId(Long cityId) {
        this.cityId = cityId;
    }

    public Long getDistrictId() {
        return districtId;
    }

    public void setDistrictId(Long districtId) {
        this.districtId = districtId;
    }

    public Long getStreetId() {
        return streetId;
    }

    public void setStreetId(Long streetId) {
        this.streetId = streetId;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }


    public Integer getType() {
        return type;
    }

    public void setType(Integer type) {
        this.type = type;
    }

    public String getIcon() {
        return icon;
    }

    public void setIcon(String icon) {
        this.icon = icon;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Integer getLevel() {
        return level;
    }

    public void setLevel(Integer level) {
        this.level = level;
    }

    public Integer getMaxNum() {
        return maxNum;
    }

    public void setMaxNum(Integer maxNum) {
        this.maxNum = maxNum;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public String getDecription() {
        return decription;
    }

    public void setDecription(String decription) {
        this.decription = decription;
    }

    /**
     * 获取
     * @return mobile
     */
    public String getMobile() {
        return mobile;
    }

    /**
     * 设置
     * @param mobile
     */
    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    public String toString() {
        return "DepartmentVO{id = " + id + ", parentId = " + parentId + ", name = " + name + ", provinceId = " + provinceId + ", cityId = " + cityId + ", districtId = " + districtId + ", streetId = " + streetId + ", communityId = " + communityId + ", code = " + code + ", sortby = " + sortby + ", type = " + type + ", level = " + level + ", maxNum = " + maxNum + ", activateStatus = " + activateStatus + ", status = " + status + ", icon = " + icon + ", ownerType = " + ownerType + ", createTime = " + createTime + ", decription = " + decription + ", mobile = " + mobile + ", check = " + check + ", billStatus = " + billStatus + ", smartLockStatus = " + smartLockStatus + ", departmentHierarchyVO = " + departmentHierarchyVO + ", userVO = " + userVO + ", roleVO = " + roleVO + ", areaId = " + areaId + "}";
    }

    /**
     * 获取
     * @return socialCreditNumber
     */
    public String getSocialCreditNumber() {
        return socialCreditNumber;
    }

    /**
     * 设置
     * @param socialCreditNumber
     */
    public void setSocialCreditNumber(String socialCreditNumber) {
        this.socialCreditNumber = socialCreditNumber;
    }
}
